package com.example.kuake.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 夸克网盘文件实体类
 */
@ApiModel(description = "夸克网盘文件信息")
public class QuarkFile {
    
    @ApiModelProperty(value = "文件ID", example = "541eae9af2f84de2bebc3bc75a42b4e3")
    private String fid;
    
    @ApiModelProperty(value = "文件名", example = "图灵-Python爬虫高级开发工程师")
    private String fileName;
    
    @ApiModelProperty(value = "父目录ID", example = "74f2966f80fe4243bb1607a324843d6c")
    private String pdirFid;
    
    @ApiModelProperty(value = "文件大小（字节）", example = "1024")
    private Long size;
    
    @ApiModelProperty(value = "文件类型", example = "0")
    private Integer fileType;
    
    @ApiModelProperty(value = "格式类型", example = "")
    private String formatType;
    
    @ApiModelProperty(value = "是否为文件夹", example = "true")
    private Boolean dir;
    
    @ApiModelProperty(value = "是否为文件", example = "false")
    private Boolean file;
    
    @ApiModelProperty(value = "包含项目数量", example = "4")
    private Integer includeItems;
    
    @ApiModelProperty(value = "创建时间戳", example = "1757247224964")
    private Long createdAt;
    
    @ApiModelProperty(value = "更新时间戳", example = "1757650774950")
    private Long updatedAt;
    
    @ApiModelProperty(value = "来源", example = "ucpro-pc")
    private String source;
    
    @ApiModelProperty(value = "文件来源", example = "UCPRO-PC:UPLOAD")
    private String fileSource;
    
    @ApiModelProperty(value = "下载链接", example = "https://example.com/download")
    private String downloadUrl;
    
    // 构造函数
    public QuarkFile() {}
    
    public QuarkFile(String fid, String fileName, Long size, Integer fileType, Boolean dir) {
        this.fid = fid;
        this.fileName = fileName;
        this.size = size;
        this.fileType = fileType;
        this.dir = dir;
        this.file = !dir;
    }
    
    // Getter和Setter方法
    public String getFid() {
        return fid;
    }
    
    public void setFid(String fid) {
        this.fid = fid;
    }
    
    public String getFileName() {
        return fileName;
    }
    
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    
    public String getPdirFid() {
        return pdirFid;
    }
    
    public void setPdirFid(String pdirFid) {
        this.pdirFid = pdirFid;
    }
    
    public Long getSize() {
        return size;
    }
    
    public void setSize(Long size) {
        this.size = size;
    }
    
    public Integer getFileType() {
        return fileType;
    }
    
    public void setFileType(Integer fileType) {
        this.fileType = fileType;
    }
    
    public String getFormatType() {
        return formatType;
    }
    
    public void setFormatType(String formatType) {
        this.formatType = formatType;
    }
    
    public Boolean getDir() {
        return dir;
    }
    
    public void setDir(Boolean dir) {
        this.dir = dir;
    }
    
    public Boolean getFile() {
        return file;
    }
    
    public void setFile(Boolean file) {
        this.file = file;
    }
    
    public Integer getIncludeItems() {
        return includeItems;
    }
    
    public void setIncludeItems(Integer includeItems) {
        this.includeItems = includeItems;
    }
    
    public Long getCreatedAt() {
        return createdAt;
    }
    
    public void setCreatedAt(Long createdAt) {
        this.createdAt = createdAt;
    }
    
    public Long getUpdatedAt() {
        return updatedAt;
    }
    
    public void setUpdatedAt(Long updatedAt) {
        this.updatedAt = updatedAt;
    }
    
    public String getSource() {
        return source;
    }
    
    public void setSource(String source) {
        this.source = source;
    }
    
    public String getFileSource() {
        return fileSource;
    }
    
    public void setFileSource(String fileSource) {
        this.fileSource = fileSource;
    }
    
    public String getDownloadUrl() {
        return downloadUrl;
    }
    
    public void setDownloadUrl(String downloadUrl) {
        this.downloadUrl = downloadUrl;
    }
    
    @Override
    public String toString() {
        return "QuarkFile{" +
                "fid='" + fid + '\'' +
                ", fileName='" + fileName + '\'' +
                ", pdirFid='" + pdirFid + '\'' +
                ", size=" + size +
                ", fileType=" + fileType +
                ", formatType='" + formatType + '\'' +
                ", dir=" + dir +
                ", file=" + file +
                ", includeItems=" + includeItems +
                ", createdAt=" + createdAt +
                ", updatedAt=" + updatedAt +
                ", source='" + source + '\'' +
                ", fileSource='" + fileSource + '\'' +
                ", downloadUrl='" + downloadUrl + '\'' +
                '}';
    }
}